import { get, post, request } from '../request.js'

// 用户认证相关API

/**
 * 用户登录
 * @param {Object} data 登录数据
 * @param {string} data.username 用户名
 * @param {string} data.password 密码
 * @returns {Promise}
 */
export const login = (data) => {
  return post('/auth/login', data)
}

/**
 * 用户注册
 * @param {Object} data 注册数据
 * @param {string} data.username 用户名 (3-50字符)
 * @param {string} data.password 密码 (6-50字符)
 * @param {string} data.confirmPassword 确认密码
 * @returns {Promise}
 */
export const register = (data) => {
  return post('/auth/register', data)
}

/**
 * 用户登出
 * @returns {Promise}
 */
export const logout = () => {
  return post('/auth/logout')
}


/**
 * 获取用户信息
 * @returns {Promise}
 */
export const getUserInfo = () => {
  return get('/user/detail')
}

/**
 * 更新个人资料
 * @param {number} id 用户ID
 * @param {Object} data 用户资料信息
 * @param {string} data.nickName 昵称 (最大255字符)
 * @param {number} data.gender 性别 (0-2，0:未知，1:男，2:女)
 * @param {string} data.address 地址 (最大255字符)
 * @param {string} data.email 邮箱 (最大128字符)
 * @returns {Promise}
 */
export const updateUserInfo = (id, data) => {
  return request({
    url: `/user/profile/${id}`,
    method: 'PATCH',
    data
  })
}

/**
 * 修改密码
 * @param {Object} data 密码数据
 * @param {string} data.oldPassword 旧密码
 * @param {string} data.newPassword 新密码
 * @returns {Promise}
 */
export const changePassword = (data) => {
  return request({
    url: '/user/password',
    method: 'PATCH',
    data
  })
}



// 默认导出所有认证相关API
export default {
  login,
  register,
  logout,
  getUserInfo,
  updateUserInfo,
  changePassword
} 